using System;

namespace SmartBoard.Core.Command
{
    public interface IUIBinderCommand:ICommand
    {
        ICommandDescriptor Descriptor { get; }
        void SetDescriptor(ICommandDescriptor descriptor);
        void RegisterWidget<TW>(TW widget, Func<TW, ICommandDescriptor, object> initializationCallback, Func<TW, bool, object> canExecuteCallback);
        void UnRegisterWidget(object widget);
    }

    //public interface IUIBinderCommand<T> : ICommand<T>, IUIBinderCommand
    //{ }
}